#include "Shield.h"

Shield::Shield()
	: mActive(false)
	, mShieldDelay(0.5f)
{}

Shield::~Shield()
{
}

void Shield::Load()
{
	mSprite.Add("shield1.png");
	mSprite.Add("shield2.png");
	mSprite.Add("shield3.png");
	mSprite.Add("shield4.png");
	mSprite.Add("shield5.png");
	mSprite.Add("shield6.png");
}

void Shield::Unload()
{
	mSprite.Unload();
}

void Shield::Update(float deltaTime)
{
	if(mActive)
	{
		mSprite.Update(deltaTime);
		mShieldDelay -= deltaTime;
		mSprite.Play(4.0f, true);

		if(mShieldDelay <= 0)
		{
			Kill();
			mShieldDelay = 0.5f;
		}
	}
}

void Shield::Render(const SVector2& viewOffset)
{
	if(mActive)
	{
		int width = mSprite.GetWidth();
		int height = mSprite.GetHeight();

		SVector2 offset(width * 0.5f, height * 0.5f);
		SVector2 renderPosition = mPosition - offset - viewOffset;

		mSprite.SetPosition(renderPosition);
		mSprite.Render();
		//Graphics_DebugCircle(mPosition, 60.0f, 0x00ff00);
	}
}

void Shield::ActivateShield(const SVector2& pos)
{
	mPosition = pos;
	mActive = true;

	//mSprite.Play(4.0f, false);
}

void Shield::Kill()
{
	mActive = false;
	mSprite.Stop();
	mSprite.Reset();
}